package com.czxy.servlet;

import cn.itcast.servlet.BaseServlet;
import com.czxy.domain.Cart;
import com.czxy.domain.Product;
import com.czxy.service.ProductService;

import javax.servlet.annotation.WebServlet;

@WebServlet("/cartServlet")
public class CartServlet extends BaseServlet {


    /**
     * 清除购物车
     * @return
     */
    public String clearCart(){
        //1.获取session中的购物车
        Cart cart = (Cart) getSession().getAttribute("cart");
        //2.清除购物车数据
        cart.clear();
        //3.从session中移除购物车
        getSession().removeAttribute("cart");
        //4.重定向
        return "redirect:/jsp/cart.jsp";
    }


    /**
     * 删除购物项
     * @return
     */
    public String delCartItem(){
        //1.接收参数 pid
        String pid = getRequest().getParameter("pid");
        //2.更新购物车
        Cart cart = (Cart) getSession().getAttribute("cart");
        cart.deleteByPid(pid);
        if(cart.getMap().size() == 0 ){
            // 购物车中已经没有购物项了
            getSession().removeAttribute("cart");
        }else{
            // 购物车中还有别的购物项
            getSession().setAttribute("cart", cart);
        }


        //3.重定向
        return "redirect:/jsp/cart.jsp";
    }


    /**
     * 添加购物车
     * @return
     */
    public String addCartItem(){
        //1.接收前端传递的pid 和 count 购买数量
        String pid = getRequest().getParameter("pid");
        String count = getRequest().getParameter("count");
        //2.调用Service方法 根据pid获取商品信息 product
        ProductService service = new ProductService();
        Product product = service.findProductByPid(pid);

        //3.更新session中的购物车对象
        Cart cart = (Cart) getSession().getAttribute("cart");
        if(cart == null){
            cart = new Cart();
        }
        // 添加购物车项
        cart.addCartItem(product, Integer.parseInt(count));

        getSession().setAttribute("cart", cart);

        //4.重定向到cart.jsp
        return "redirect:/jsp/cart.jsp";
    }
}





















